PvRay is sort of a "group" project involved in a portable ray-tracer. The core code is written in ANSI C, with "hooks" to machine specific code layered on top of it. This is the Macintosh version, which is actually _two_ seperate ports. One is the ray-tracer itself (very little modification... only some micro-bugs), and the old DKBTrace front end written by Thomas Okken. All of this information doesn't really mean much unless you are planning to (or have) acquired the source code and the Macintosh specifics code.
The documentation that comes with the Mac-Specs explains a lot more about the program and how it works.
-- Old DKB...
The original ray-tracing program was called DKBTrace. It was then upgraded to PvRay.
The Macintosh version of DKBTrace was written in MPW. It was a very simple shell slapped onto DKBTrace to simulate command lines (just say no....) and a few Macintosh specifics.
If you used the Mac version of DKBTrace, you will notice that the front end to PvRay looks nearly identical. Well.. that's because it is... I assimilated PvRay & the Mac version of DKBTrace, then updated it to work with Think C 5.0. Along the way I tossed in a few new additions, and speed some things up. If you haven't read the PvRay Docs, I suggest you do so now (or keep them handy to refer to). I have also included the original documentation to the MPW version of DKBTrace for even more confusion :)
-- New & Improved...
There are a few added/updated menu changes to the original version of DKBTrace, so I
will explain each one (to hopefully clearify things...)
-The Apple Menu
Contains "About PvRay"... spits out some text about the authors, the command line parameters, then exits.... <See "Old & Annoying" below..>
-The File Menu
-Trace
This calls up the dialog box in which you enter the pertinent information
to be changed into a command line to be passed to the actual ray-tracer.
Much of it is pretty straight-forward. If you are confused about an
item, refer to the PcRay Docs & the DKBTrace documentation.
-Abort
Only allowed while a trace is running.
-Dump -> Pict
Creates a PICT file of the plotted window when the trace is finished or
it is aborted (PvRay's only output formats are "Dump/QRT, Raw, and Targa"
** NOTE : The routine to convert the "Dump" file in a low memory condition
is not completely tested.... It may &&crash&&! Use this _only_ if you
have "enough" memory allocated to PvRay (more below in "Memory").
** NOTE : This routine is a "back-end" to PvRay... it will still create an
output file (kind of like a write-through). Don't worry about losing
a 4-day ray-trace if Dump -> Pict crashes.. you will still be able to
"Resume" with the original output file!
-Convert DKB -> PV
Will convert old DKBTrace .dat files to PvRay .dat files when a trace is
executed.
-The Edit Menu
For DAs only!
-The MacOptions Menu
-Dither
Will automatically be selected if you are not working in >16-bit color. Will take the saved image in memory and dither it when a display "update" occurs (i.e. the window was overlapped or a certain amount of time has passed).
-Show Pixels
Toggling this option on or off will speed up PvRay by allowing it to continue to process the ray-trace without having to show each and every pixel. It will still "update" the screen (redraw itself) every so often.
-24-Bit AntiAlias
A small development note here... when PvRay sends a pixel to the Mac front
end to plot, it's ranges on the Red, Green, and Blue are from 0->127. The
Mac can display 0->256, so the images used to look very dark, and all of
the Pixel information was jammed down at the bottom end of the scale. PvRay for the Mac takes care of that by simply multiplying the received pixel color by 2. With this option toggled, it will add the previous pixel to the current one, thereby "alais"ing the current pixel. This also results in a slightly blurry output (which looks best on "ethreal" plots....) The best way to
experiment with the option is to plot it with it on, then turn the option off
(it defaults to AntiAliasing) and do a "resume" (which re-reads the output file and redraws the display).
-Background Friendly
This option will give background processes a ton of CPU time to play with.
Turn this option off for maximum speed & "hogginess".
-Shutdown after completion
Pretty self-explanitory.
** NOTE : This option was a quick hack I added after receiving a noisy
removable drive. I doesn't look like it calls the regular "ShutDown"
functions (i.e. FileSavers, etc...) it _does_ flush the current volume
(_not_ other ones!). Use this at your own risk!
-- Memory
PvRay requires a _lot_ of memory... at least 2 megs. for a plot with updating.
If you have less, you will be able to create output files, and see a very
strange looking stretched update in the plotting window. You will have to
use the "Dump->Pict" menu option in a low memory condition that isn't really
guarenteed to work. If the program crashes a lot, up the memory!
-- Old & Annoying...
There are a _lot_ of things I would like to change about the front end slapped
onto PvRay, but it has taken me quite a while to simply convert it over. One
of the biggest changes I would like to make is the ugly text windows & text
output files "PvRay.err" & "PvRay.output" it creates. The "About PvRay" is
also extremely annoying (especially if you have "pause" turned off!) There also
seems to be a problem updating the settings inbetween sessions, I am working
on debugging that along with a few other routines... I am also interested in
writing the front-end in a more configurable way (i.e. very low memory, etc....)
If there is enough interest & feedback generated, I will continue
to work on the Mac front-end to PvRay.. otherwise.... :)
-- Wrapping up...
I included a couple of my own quick ray-traces to play around with... have fun ray-tracing! PvRay is an incredible program, and it's portability is one of a kind! If you find any bugs (and you probably will...) _please_ report them to
me somehow! If you can break it down into one of the two categories [1] Front End and [2] PvRay I would appreciate it! It will make updating much easier (since I can forward messages to the creators of the core code).
Good Luck!
-- Version History
{ The numbers before the 'd' will signify PvRay's version. The numbers after